package com.etc.dao;

import com.etc.entity.Employee;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 文件名:com.etc.entity.EmployeeDao
 * 描述：员工持久层接口
 * 作者:吴仕泉
 * 时间:2019/5/23 19:24
 */
@Repository
@Mapper
public interface EmployeeDao {
    //根据员工ID删除该员工记录
    int deleteByPrimaryKey(Integer empid);

    //添加一条员工记录
    int insert(Employee record);

    //添加一条员工记录（参数可变）
    int insertSelective(Employee record);

    //根据员工ID查询该员工信息
    Employee selectByPrimaryKey(Integer empid);

    //根据员工ID修改员工信息
    int updateByPrimaryKeySelective(Employee record);

    //根据员工ID修改员工信息（参数可变）
    int updateByPrimaryKey(Employee record);

    /**
     * 根据员工手机号以及员工密码查询在职员工及超级管理员信息
     * @param empphone
     * @param emppassword
     * @return 查询到的员工对象
     */
    Employee getEmployeeByEmpphoneAndEmppassword(@Param("empphone") String empphone,@Param("emppassword") String emppassword);

    //员工分页查询
    List<Employee> selectEmployeeByPage(@Param("start") Integer start, @Param("pageSize") Integer pageSize,
                                        @Param("content") String content);

    //员工数量
    int selectCount(@Param("content") String content);

    /**
     * 员工修改个人信息的方法
     * @param empname 员工名
     * @param empsex 员工性别
     * @return 是否成功
     */
    boolean updateEmployeeSetEmpnameAndEmpsexByEmpid(@Param("empname") String empname, @Param("empsex") String empsex,@Param("empid") Integer empid);

    /**
     * 员工修改个人信息的方法（包括密码）
     * @param empname 员工名
     * @param emppassword 员工密码
     * @param empsex 员工性别
     * @return 是否成功
     */
    boolean updateEmployeeSetEmpnameAndEmpsexAndemppasswordByEmpid(@Param("empname") String empname, @Param("emppassword") String emppassword, @Param("empsex") String empsex,@Param("empid") Integer empid);
}